import java.util.Random;
import java.util.Scanner;

/**
 * Created by John
 * Description: 这是第一个Java程序
 * User: Administrator
 * Date: 2021--09--06
 * Time: 10:13
 */
public class TestJohn {


    //编写代码模拟密码输入的场景。 多能输入三次密码，密码正确，提示“登录成功”,密码错误，以重新输入，超过三次提示退出程序
    public static void main15(String[] args) {
        int count = 3;
        String passWord = "i love you";
        while(count != 0){
            Scanner scan = new Scanner(System.in);
            System.out.print("请输入密码: ");
            String input = scan.nextLine();
            if(input.equals(passWord)){
                System.out.println("登录成功！");
                break;
            }else {
                count--;
                System.out.println("密码错误，请重新输入");
            }
        }
        if(count == 0)
        System.out.println("密码已输错三次，退出程序 ");
    }

    //获取一个数,二进制序列中所有的偶数位和奇数位，分别输出二进制序列 (要利用右移符)
    public static void main14(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入一个整数: ");
        int num = scan.nextInt();
        System.out.println("奇数位上的二进制数为： ");
        for(int i = 0; i< 32; i += 2){
            int m = (num >>i) & 1; //获取奇数位
            System.out.print(m+" ");
            }
        System.out.println();
        System.out.println("偶数数位上的二进制数为： ");
        for(int i = 1; i< 32; i += 2){
            int n = (num >> i) & 1; //获取偶数位
            System.out.print(n+" ");

        }
        }


    //求一个整数，在内存当中存储时，二进制1的个数
    public static void main13(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入一个整数: ");
        int num = scan.nextInt();
        int count = 0;

       while(num != 0){
          num = num & (num - 1);
          count ++;
       }
        System.out.println(count);
    }

    //输出n*n的乘法口诀表，n由用户输入
    public static void main12(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入一个整数: ");
        int n = scan.nextInt();
        for (int i =1; i<= n; i++){
            for (int j=1; j<= i; j++){
                System.out.print(i +"*"+ j+"="+ i*j+"  ");
            }
            System.out.println();
        }
    }

    //顺序输出一个整数的每一位
    public static void main11(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入一个整数: ");
        int m = scan.nextInt();
        int count = 0;
        int  tmp = m;
        while(tmp != 0){
           tmp /= 10;
            count++;
        }
        while(m != 0){
            int tem =(int ) Math.pow(10, count-1);
            int ret = m / tem;
            m %= tem;
            count--;
            System.out.print(ret+" ");
        }
    }

    //求两个正整数的最大公约数
    public static void main10(String[] args) {
        Scanner scan = new Scanner(System.in);
        int m = scan.nextInt();
        int n = scan.nextInt();
        while(n != 0){
            int ret = m % n;
            m = n;
            n = ret;

        }
        System.out.println(m);
    }


    //计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
    public static void main9(String[] args) {
        int flag = 1;
        double sum=0;
        for (int i = 1; i<= 100; i++){
            sum += 1.0/i * flag;
            flag = -flag;
        }
        System.out.println(sum);
    }

    //求出0～999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和恰好等于该数本身）
    public static void main8(String[] args) {

        for (int i=100;i<=999;i++){
            int sum=0;
             int num=i;//num不能被循环影响，要放外面
          while(num != 0){
              int ret = num % 10;
               num = num / 10;
              sum = sum + ret*ret*ret;
          }
          if(sum == i){ //循环里面对值做了修改，所以 要找一个代替i
              System.out.println(i);
          }
        }

    }

    //完成猜数字游戏 ，用户输入数字，判断该数字是大于，小于，还是等于随机生成的数字，等于的时候退出程序。
    public static void main7(String[] args) {
        Random random = new Random();
        int rand = random.nextInt(100)+1;
        Scanner scan = new Scanner(System.in);

        while(scan.hasNextInt() ){//遇到需要循环输入的都这样用
            int n = scan.nextInt();
            if(n > rand){
                System.out.println("大了");
            }else if(n < rand){
                System.out.println("小了");
            }else {
                System.out.println("猜对了！");
                break;
            }
        }
    }

    //打印出类‘X' 图形    （ctrl + D 结束，否则程序会一直运行）
    public static void main6(String[] args){
            Scanner scan = new Scanner(System.in);
            while(scan.hasNextInt()){
                int n = scan.nextInt();
                for(int i=0;i<n;i++){
                    for(int j=0;j<n;j++){
                        if(i==j || i+j == n-1  ){
                            System.out.print("*");
                        } else{
                            System.out.print(" ");
                        }
                    }
                    System.out.println();
                }
            }
        }


    //根据输入的年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
    public static void main5(String[] args) {
        int age=23;
        if(age<=18){
            System.out.println("少年");
        }else if(age<=28) {
            System.out.println("青年");
        }else if(age<=55){
            System.out.println("中年");
        }else {
            System.out.println("老年");
        }
    }


    //判定一个数字是否是素数
    public static boolean func(int num) {

            for (int j = 2; j <= Math.sqrt(num); j++) {
                if (num % j == 0 && num != 2) {
                    return false;
                }
            }

               return true;
    }

    public static void main4(String[] args) {
        boolean ret=func(5);//静态方法里不能调用普通方法
        System.out.println(ret);
    }

    //打印 1 - 100 之间所有的素数
    public static void main3(String[] args) {

        for (int i=2;i<=100;i++) {
            int flag = 0;
            for (int j=2;j<=Math.sqrt(i);j++){
               if (i%j ==0 && i != 2){
                   flag=1;
                   break;
               }
            }
              if (flag == 0){
                  System.out.println(i);
              }

        }

    }

    //输出 1000 - 2000 之间所有的闰年
    public static void main2(String[] args) {
        int count=0;
        int year=0;
        for (year = 1000; year <= 2000; year++){
            if((year%400 == 0) || (year%4 ==0 && year%100 != 0 )){
                System.out.print(year+" ");
                count++;
                if(count%10 == 0) {
                    System.out.println();
                }
            }

        }
    }



    //计算100内 数字9 出现的次数
    public static void main1(String[] args) {
        int count=0;
        for (int i=0;i<=100;i++){
            if(i/10 == 9 ){
                count++;
            }
            if (i%10 == 9){
                count++;
            }
        }
        System.out.println(count);
    }





}
